/**
 * 数据处理
 **/
const utils = {
	//去空格
	trim: function(value) {
		return value.replace(/(^\s*)|(\s*$)/g, "");
	},
	//内容替换
	replaceAll: function(text, repstr, newstr) {
		return text.replace(new RegExp(repstr, "gm"), newstr);
	},
	//验证手机号码
	regPhone:function(num){
		return /^1[3-9]\d{9}$/.test(num);
	},
	//格式化手机号码
	formatNumber: function(num) {
		return num.length === 11 ? num.replace(/^(\d{3})\d{4}(\d{4})$/, '$1****$2') : num;
	},
	//金额格式化
	rmoney: function(money) {
		return parseFloat(money).toFixed(2).toString().split('').reverse().join('').replace(/(\d{3})/g, '$1,').replace(
			/\,$/, '').split('').reverse().join('');
	},
	//日期格式化
	formatDate: function(date, ymdOnly) {
		var y = date.getFullYear();
		var m = date.getMonth() + 1;
		m = m < 10 ? ('0' + m) : m;
		var d = date.getDate();
		d = d < 10 ? ('0' + d) : d;
		var h = date.getHours();
		h=h < 10 ? ('0' + h) : h;
		var minute = date.getMinutes();
		minute = minute < 10 ? ('0' + minute) : minute;
		var second=date.getSeconds();
		second=second < 10 ? ('0' + second) : second;
		if(ymdOnly){
			return y + '-' + m + '-' + d
		}else{
			return y + '-' + m + '-' + d+' '+h+':'+minute+':'+second;
		}
	},
	DateAdd:function (interval,number,date){
		/**
		  *   参数:interval,字符串表达式，表示要添加的时间间隔字符.
		  *   参数:number,数值表达式，表示要添加的时间间隔的个数.
		  *   参数:date,时间对象.
		  *   返回:新的时间对象.
		  *   var  now   =   new Date();
		  *   var  newDate  =  DateAdd( "d",2,now);
		  *---------------   DateAdd(interval,number,date)   -----------------
		  **/ 
		switch(interval){
		case "y":{
			date.setFullYear(date.getFullYear()+number);
			return   date;
			break;
		};
		case "q":{
			date.setMonth(date.getMonth()+number*3);
			return   date;
			break;
		}
		case "m":{
			date.setMonth(date.getMonth()+number);
			return   date;
			break; 
		} 
		case "w":{
			date.setDate(date.getDate()+number*7);
			return date;
			break; 
		} 
		case "d":{
			date.setDate(date.getDate()+number);
			return date;
			break; 
		} 
		case "h":{
			date.setHours(date.getHours()+number); 
			return   date; 
			break; 
		} 
		case "m":{
			date.setMinutes(date.getMinutes()+number); 
			return   date; 
			break; 
		} 
		case "s":{
			date.setSeconds(date.getSeconds()+number); 
			return date;
			break;
		}
		default:{
			date.setDate(d.getDate()+number); 
			return date; 
			break; 
		} 
		} 
	},
	formatRichText: function formatRichText(html){
		let htmlSpl = html.split('<img')
		let newContentArr = htmlSpl.map((val)=>{
			val = val.replace(/src="/gi, 'style="width:100%!important;display:block!important; height: auto!important;" src="');
			if(val.indexOf('src="//')!=-1){
				val = val.replace(/src="\/\//gi, 'src="https://');
			}
			return val
		});
		let newContent = newContentArr.join('<img')
		return newContent;
	}
		 
		 
}

module.exports = {
	trim: utils.trim,
	regPhone:utils.regPhone,
	replaceAll: utils.replaceAll,
	formatNumber: utils.formatNumber,
	rmoney: utils.rmoney,
	formatDate: utils.formatDate,
	DateAdd: utils.DateAdd,
	formatRichText: utils.formatRichText
}
